package com.nyist.ribbon;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author yangxiaogen
 * @date 2021/1/29 10:01
 */
@Configuration
public class MySelfRule {

    /**
     * 1. 修改默认的负载均衡规则 , 从默认的轮询改为 , 自定义的 随机
     * 2. 注意事项, 将自定义的规则类放在 @ComponentScan 扫描的包外面
     * 3. @ComponentScan在@SpringBootApplication注解里面包含着, 也就意味着, 需要将自己定义的规则类放在主启动类外面
     * 4. 作为配置类, 需要在类上加上 @Configuration 注解, 标识为 配置类
     * 5. 需要将这个方法, 注入进spring的工厂, 所以需要加 @Bean 注解, 将方法名作为标识注入进工厂
     *
     * */

    @Bean
    public IRule myRule() {
        return new RandomRule();
    }

}
